//
//  HMMainViewController.swift
//  Weibo12
//
//  Created by HM on 15/12/26.
//  Copyright © 2015年 itheima. All rights reserved.
//  主界面的 tabBarController

import UIKit

class HMMainViewController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 利用 kvc 给只读属性赋值
        // 基于运行时，在运行的时候给对象间接（强制性）
        
        let tabBar = HMTabBar()
        // tabBar.composeButtonClick()
        tabBar.composeButtonClickClourse = {
            // 在此闭包里面使用 self 会造成循环引用
            print("哈哈")
        }
        
//        setValue(tabBar, forKey: "tabBar")
        setValue(tabBar, forKeyPath: "tabBar")

        addChildViewControllers()
    }
    
    
    ///  添加4个子控制器
    func addChildViewControllers() {
        
        addChildViewController(HMHomeTableViewController(), imgNamed: "tabbar_home", title: "首页")
        addChildViewController(HMMessageTableViewController(), imgNamed: "tabbar_message_center", title: "消息")
        addChildViewController(HMDiscoverTableViewController(), imgNamed: "tabbar_discover", title: "发现")
        addChildViewController(HMProfileTableViewController(), imgNamed: "tabbar_profile", title: "我")
        
    }
    
    /// 添加子控制器
    ///
    /// - parameter childController: 子控制器
    /// - parameter imgNamed:        对应的图标名称
    /// - parameter title:           标题
    func addChildViewController(vc: UIViewController, imgNamed: String, title: String) {
        
//        // 指定导航栏的标题
//        vc.navigationItem.title = title
//        // 设置标题
//        vc.tabBarItem.title = title
        vc.title = title
        // 设置不同状态的图片(指定渲染模型)
        vc.tabBarItem.image = UIImage(named: imgNamed)?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
        vc.tabBarItem.selectedImage = UIImage(named: "\(imgNamed)_selected")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
        
        // 设置选中的颜色
        let dict = [
            NSForegroundColorAttributeName: UIColor.orangeColor()
        ]
        vc.tabBarItem.setTitleTextAttributes(dict, forState: UIControlState.Selected)
        
        
        // 调用图片的偏移
        // vc.tabBarItem.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0)
        
        // 设置 title的字体大小
//        let fontDict = [
//            NSFontAttributeName: UIFont.systemFontOfSize(30)
//        ]
//        vc.tabBarItem.setTitleTextAttributes(fontDict, forState: UIControlState.Normal)
        
        // 添加子控制器
        addChildViewController(HMNavigationController(rootViewController: vc))
    }

}
